﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Veracruz
{
  /// <summary>
  /// An identity is what make someone known by other. Some people can have multiple identities but few are able to have
  /// concrete one.
  /// </summary>
  /// <remarks>To enforce an identity one must collect prooves such as ID, invoice, healthID...</remarks>
  interface IIdentity
  {
    /// <summary>
    /// First name
    /// </summary>
    string FirstName { get; set; }
    /// <summary>
    /// Last name
    /// </summary>
    string LastName { get; set; }
    /// <summary>
    /// Nick name
    /// </summary>
    string NickName { get; set; }
    /// <summary>
    /// True if its a native’s Identity
    /// </summary>
    bool BornAs { get; set; }
    /// <summary>
    /// List all the proof that improve the veracity of an identity especially important for criminals and fake identity
    /// </summary>
    IList<IProof> Consistency { get; }
    /// <summary>
    /// The hobbies of this identity 
    /// </summary>
    IHobby Hobbies { get; set; }
    /*TODO: how to identify fake hobbies*/

    /// <summary>
    /// The collection of influent people known
    /// </summary>
    IAddressBook AddressBook { get; set; }
    
    /* TODO: A fake identity is not connected to a character !*/

  }
}
